package dao;

import java.util.ArrayList;

import model.Competitie;
import model.Lid;
import model.Team;
import model.Wedstrijd;
import dao.interfaces.CompetitieDao;

public class CompetitieDaoMock implements CompetitieDao {

	private static CompetitieDaoMock instance;
	private ArrayList<Competitie> competities;
	private ArrayList<Team> teams;

	private CompetitieDaoMock() {
		competities = new ArrayList<Competitie>();
		teams = new ArrayList<Team>();
	}

	public static CompetitieDaoMock getInstance() {
		if (instance == null) {
			instance = new CompetitieDaoMock();
		}
		return instance;
	}

	@Override
	public void addNieuweCompetitie(Competitie competitie) {
		System.out.println("Add nieuw competitie aangeroepen");
	}

	@Override
	public void addNieuwTeam(Team team) {
		System.out.println("Add nieuw team aangeroepen");
	}

	@Override
	public void addTeamAanCompetitie(Team team, Competitie competitie) {
		System.out.println("Add team competitie aangeroepen");
	}

	@Override
	public void verwijderTeamUitCompetitie(Team team, Competitie competitie) {
		System.out.println("verwijder team competitie aangeroepen");
	}

	@Override
	public void addLidAanTeam(Lid lid, Team team) {
		System.out.println("Add lid team aangeroepen");
	}

	@Override
	public void verwijderLidUitTeam(Lid lid, Team team) {
		System.out.println("verwijder lid team aangeroepen");
	}

	@Override
	public void AddTeamAanWedstrijd(Team team, Wedstrijd wedstrijd) {
		System.out.println("Add team wedstrijd aangeroepen");
	}

	@Override
	public void addWedstrijdAanCompetitie(Wedstrijd wedstrijd,
			Competitie competitie) {
		System.out.println("Add wedstrijd competitie aangeroepen");
	}

	@Override
	public void addUitslagAanWedstrijd(Wedstrijd wedstrijd, int thuis, int uit) {
		System.out.println("Add uitslag wedstrijd aangeroepen");
	}

	@Override
	public String getStandVanCompetitie(String competitieNaam) {
		System.out.println("get stand competitie aangeroepen");
		return "";
	}

	@Override
	public String getWedstrijdGeschiedenis(Lid lid) {
		System.out.println("get wedstrijd geschiedenis aangeroepen");
		return "";
	}

	@Override
	public String getWedstrijdOverzichtVanHuidigeWeek() {
		System.out.println("get wedstrijd overzicht huidig aangeroepen");
		return "";
	}

	@Override
	public String getWedstrijdOverzichtVanVolgendeWeek() {
		System.out.println("get wedstrijd overzicht volgende aangeroepen");
		return "";
	}

	public Competitie getCompetitie(String competitieNaam) {
		for (Competitie c : competities) {
			if (c.getCompetitieNaam().equalsIgnoreCase(competitieNaam)) {
				return c;
			}
		}
		return null;
	}

	@Override
	public Team getTeam(String teamNaam) {
		for (Competitie c : competities) {
			for (Team t : c.getTeams()) {
				if (t.getTeamNaam().equalsIgnoreCase(teamNaam)) {
					return t;
				}
			}
		}
		return null;
	}

	@Override
	public Wedstrijd getWedstrijd(int wedstrijdNr) {
		for (Competitie c : competities) {
			for (Wedstrijd w : c.getWedstrijden()) {
				if (w.getWedstrijdNr() == wedstrijdNr) {
					return w;
				}
			}
		}
		return null;
	}

	@Override
	public ArrayList<Competitie> getCompetities() {
		// TODO Auto-generated method stub
		return competities;
	}

	@Override
	public ArrayList<Team> getTeams() {
		// TODO Auto-generated method stub
		return teams;
	}

}
